define(function(require, exports, module) {
    "use strict";
    var $ = require("$"),
        app = require("dist/application/app");
    $(".js_third").on("change",function(){
        var fid=$(this).data("fid"),flag=$(this).prop("checked"),sfid=$("#"+fid).data("fid"),$slist=$(".js_third.js_"+fid),len=$slist.length,num=0,
        $splist=$(".js_second.js_"+sfid),plen=$splist.length,pnum=0;
        if(flag){
            $("#"+fid).prop("checked",flag);
            $("#"+sfid).prop("checked",flag);
        }
        $(".js_third.js_"+fid).each(function(){
            if(!$(this).prop("checked")){
                num++;
            }
        });
        if(len==num){
            $("#"+fid).prop("checked",false);
        }

        $(".js_second.js_"+sfid).each(function(){
            if(!$(this).prop("checked")){
                pnum++;
            }
        });
        if(plen==pnum){
            $("#"+sfid).prop("checked",false);
        }
    });
    $(".js_second").on("change",function(){
        var id=$(this).attr("id"),fid=$(this).data("fid"),flag=$(this).prop("checked"),$slist=$(".js_second.js_"+fid),len=$slist.length,num=0;
        if(flag){
            $("#"+fid).prop("checked",flag);
        }
        $(".js_"+id).prop("checked",flag);
        $(".js_second.js_"+fid).each(function(){
            if(!$(this).prop("checked")){
                num++;
            }
        });

        if(len==num){
            $("#"+fid).prop("checked",false);
        }
    });
    $(".js_first").on("change",function(){
        var id=$(this).attr("id"),flag=$(this).prop("checked");
        $(".js_"+id).prop("checked",flag);
    });
});